package com.knight.handler;

import com.knight.message.EventDate;

import java.util.List;

/**
 * 定义事件处理器的共性方法
 * @Param E 消息类型
 * @Param T 消息源数据
 */
public interface EventHandler<E, T> {

    /**
     * 处理事件
     */
    void handler(T eventDate);

    /**
     * 获取 eventHandler 的名字
     *
     * @return
     */
    String getHandlerName();

    /**
     * 支持的事件消息类型
     *
     * @return
     */
    List<E> supportEventTypeList();

    /**
     * 获取处理器序号，用来做顺序处理
     * @return
     */
    Integer getOrder();
}
